<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>gen_image_to_world_plane_map [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_calibration.html">Calibration</a> / <a href="toc_calibration_rectification.html">Rectification</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">gen_image_to_world_plane_map</span><span data-if="c" style="display:none;">T_gen_image_to_world_plane_map</span><span data-if="cpp" style="display:none;">GenImageToWorldPlaneMap</span><span data-if="dotnet" style="display:none;">GenImageToWorldPlaneMap</span><span data-if="python" style="display:none;">gen_image_to_world_plane_map</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">gen_image_to_world_plane_map</span><span data-if="c" style="display:none;">T_gen_image_to_world_plane_map</span><span data-if="cpp" style="display:none;">GenImageToWorldPlaneMap</span><span data-if="dotnet" style="display:none;">GenImageToWorldPlaneMap</span><span data-if="python" style="display:none;">gen_image_to_world_plane_map</span></code> — Generate a projection map that describes the mapping between the image
plane and the plane z=0 of a world coordinate system.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>gen_image_to_world_plane_map</b>( : <a href="#Map"><i>Map</i></a> : <a href="#CameraParam"><i>CameraParam</i></a>, <a href="#WorldPose"><i>WorldPose</i></a>, <a href="#WidthIn"><i>WidthIn</i></a>, <a href="#HeightIn"><i>HeightIn</i></a>, <a href="#WidthMapped"><i>WidthMapped</i></a>, <a href="#HeightMapped"><i>HeightMapped</i></a>, <a href="#Scale"><i>Scale</i></a>, <a href="#MapType"><i>MapType</i></a> : )</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_gen_image_to_world_plane_map</b>(Hobject* <a href="#Map"><i>Map</i></a>, const Htuple <a href="#CameraParam"><i>CameraParam</i></a>, const Htuple <a href="#WorldPose"><i>WorldPose</i></a>, const Htuple <a href="#WidthIn"><i>WidthIn</i></a>, const Htuple <a href="#HeightIn"><i>HeightIn</i></a>, const Htuple <a href="#WidthMapped"><i>WidthMapped</i></a>, const Htuple <a href="#HeightMapped"><i>HeightMapped</i></a>, const Htuple <a href="#Scale"><i>Scale</i></a>, const Htuple <a href="#MapType"><i>MapType</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>GenImageToWorldPlaneMap</b>(HObject* <a href="#Map"><i>Map</i></a>, const HTuple&amp; <a href="#CameraParam"><i>CameraParam</i></a>, const HTuple&amp; <a href="#WorldPose"><i>WorldPose</i></a>, const HTuple&amp; <a href="#WidthIn"><i>WidthIn</i></a>, const HTuple&amp; <a href="#HeightIn"><i>HeightIn</i></a>, const HTuple&amp; <a href="#WidthMapped"><i>WidthMapped</i></a>, const HTuple&amp; <a href="#HeightMapped"><i>HeightMapped</i></a>, const HTuple&amp; <a href="#Scale"><i>Scale</i></a>, const HTuple&amp; <a href="#MapType"><i>MapType</i></a>)</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>::<b>GenImageToWorldPlaneMap</b>(const HCamPar&amp; <a href="#CameraParam"><i>CameraParam</i></a>, const HPose&amp; <a href="#WorldPose"><i>WorldPose</i></a>, Hlong <a href="#WidthIn"><i>WidthIn</i></a>, Hlong <a href="#HeightIn"><i>HeightIn</i></a>, Hlong <a href="#WidthMapped"><i>WidthMapped</i></a>, Hlong <a href="#HeightMapped"><i>HeightMapped</i></a>, const HTuple&amp; <a href="#Scale"><i>Scale</i></a>, const HString&amp; <a href="#MapType"><i>MapType</i></a>)</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>::<b>GenImageToWorldPlaneMap</b>(const HCamPar&amp; <a href="#CameraParam"><i>CameraParam</i></a>, const HPose&amp; <a href="#WorldPose"><i>WorldPose</i></a>, Hlong <a href="#WidthIn"><i>WidthIn</i></a>, Hlong <a href="#HeightIn"><i>HeightIn</i></a>, Hlong <a href="#WidthMapped"><i>WidthMapped</i></a>, Hlong <a href="#HeightMapped"><i>HeightMapped</i></a>, const HString&amp; <a href="#Scale"><i>Scale</i></a>, const HString&amp; <a href="#MapType"><i>MapType</i></a>)</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>::<b>GenImageToWorldPlaneMap</b>(const HCamPar&amp; <a href="#CameraParam"><i>CameraParam</i></a>, const HPose&amp; <a href="#WorldPose"><i>WorldPose</i></a>, Hlong <a href="#WidthIn"><i>WidthIn</i></a>, Hlong <a href="#HeightIn"><i>HeightIn</i></a>, Hlong <a href="#WidthMapped"><i>WidthMapped</i></a>, Hlong <a href="#HeightMapped"><i>HeightMapped</i></a>, const char* <a href="#Scale"><i>Scale</i></a>, const char* <a href="#MapType"><i>MapType</i></a>)</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>::<b>GenImageToWorldPlaneMap</b>(const HCamPar&amp; <a href="#CameraParam"><i>CameraParam</i></a>, const HPose&amp; <a href="#WorldPose"><i>WorldPose</i></a>, Hlong <a href="#WidthIn"><i>WidthIn</i></a>, Hlong <a href="#HeightIn"><i>HeightIn</i></a>, Hlong <a href="#WidthMapped"><i>WidthMapped</i></a>, Hlong <a href="#HeightMapped"><i>HeightMapped</i></a>, const wchar_t* <a href="#Scale"><i>Scale</i></a>, const wchar_t* <a href="#MapType"><i>MapType</i></a>)  <span class="signnote">
            (
            Windows only)
          </span></code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HCamPar.html">HCamPar</a>::<b>GenImageToWorldPlaneMap</b>(const HPose&amp; <a href="#WorldPose"><i>WorldPose</i></a>, Hlong <a href="#WidthIn"><i>WidthIn</i></a>, Hlong <a href="#HeightIn"><i>HeightIn</i></a>, Hlong <a href="#WidthMapped"><i>WidthMapped</i></a>, Hlong <a href="#HeightMapped"><i>HeightMapped</i></a>, const HTuple&amp; <a href="#Scale"><i>Scale</i></a>, const HString&amp; <a href="#MapType"><i>MapType</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HCamPar.html">HCamPar</a>::<b>GenImageToWorldPlaneMap</b>(const HPose&amp; <a href="#WorldPose"><i>WorldPose</i></a>, Hlong <a href="#WidthIn"><i>WidthIn</i></a>, Hlong <a href="#HeightIn"><i>HeightIn</i></a>, Hlong <a href="#WidthMapped"><i>WidthMapped</i></a>, Hlong <a href="#HeightMapped"><i>HeightMapped</i></a>, const HString&amp; <a href="#Scale"><i>Scale</i></a>, const HString&amp; <a href="#MapType"><i>MapType</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HCamPar.html">HCamPar</a>::<b>GenImageToWorldPlaneMap</b>(const HPose&amp; <a href="#WorldPose"><i>WorldPose</i></a>, Hlong <a href="#WidthIn"><i>WidthIn</i></a>, Hlong <a href="#HeightIn"><i>HeightIn</i></a>, Hlong <a href="#WidthMapped"><i>WidthMapped</i></a>, Hlong <a href="#HeightMapped"><i>HeightMapped</i></a>, const char* <a href="#Scale"><i>Scale</i></a>, const char* <a href="#MapType"><i>MapType</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HCamPar.html">HCamPar</a>::<b>GenImageToWorldPlaneMap</b>(const HPose&amp; <a href="#WorldPose"><i>WorldPose</i></a>, Hlong <a href="#WidthIn"><i>WidthIn</i></a>, Hlong <a href="#HeightIn"><i>HeightIn</i></a>, Hlong <a href="#WidthMapped"><i>WidthMapped</i></a>, Hlong <a href="#HeightMapped"><i>HeightMapped</i></a>, const wchar_t* <a href="#Scale"><i>Scale</i></a>, const wchar_t* <a href="#MapType"><i>MapType</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HPose.html">HPose</a>::<b>GenImageToWorldPlaneMap</b>(const HCamPar&amp; <a href="#CameraParam"><i>CameraParam</i></a>, Hlong <a href="#WidthIn"><i>WidthIn</i></a>, Hlong <a href="#HeightIn"><i>HeightIn</i></a>, Hlong <a href="#WidthMapped"><i>WidthMapped</i></a>, Hlong <a href="#HeightMapped"><i>HeightMapped</i></a>, const HTuple&amp; <a href="#Scale"><i>Scale</i></a>, const HString&amp; <a href="#MapType"><i>MapType</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HPose.html">HPose</a>::<b>GenImageToWorldPlaneMap</b>(const HCamPar&amp; <a href="#CameraParam"><i>CameraParam</i></a>, Hlong <a href="#WidthIn"><i>WidthIn</i></a>, Hlong <a href="#HeightIn"><i>HeightIn</i></a>, Hlong <a href="#WidthMapped"><i>WidthMapped</i></a>, Hlong <a href="#HeightMapped"><i>HeightMapped</i></a>, const HString&amp; <a href="#Scale"><i>Scale</i></a>, const HString&amp; <a href="#MapType"><i>MapType</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HPose.html">HPose</a>::<b>GenImageToWorldPlaneMap</b>(const HCamPar&amp; <a href="#CameraParam"><i>CameraParam</i></a>, Hlong <a href="#WidthIn"><i>WidthIn</i></a>, Hlong <a href="#HeightIn"><i>HeightIn</i></a>, Hlong <a href="#WidthMapped"><i>WidthMapped</i></a>, Hlong <a href="#HeightMapped"><i>HeightMapped</i></a>, const char* <a href="#Scale"><i>Scale</i></a>, const char* <a href="#MapType"><i>MapType</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HPose.html">HPose</a>::<b>GenImageToWorldPlaneMap</b>(const HCamPar&amp; <a href="#CameraParam"><i>CameraParam</i></a>, Hlong <a href="#WidthIn"><i>WidthIn</i></a>, Hlong <a href="#HeightIn"><i>HeightIn</i></a>, Hlong <a href="#WidthMapped"><i>WidthMapped</i></a>, Hlong <a href="#HeightMapped"><i>HeightMapped</i></a>, const wchar_t* <a href="#Scale"><i>Scale</i></a>, const wchar_t* <a href="#MapType"><i>MapType</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>GenImageToWorldPlaneMap</b>(out <a href="HObject.html">HObject</a> <a href="#Map"><i>map</i></a>, <a href="HTuple.html">HTuple</a> <a href="#CameraParam"><i>cameraParam</i></a>, <a href="HTuple.html">HTuple</a> <a href="#WorldPose"><i>worldPose</i></a>, <a href="HTuple.html">HTuple</a> <a href="#WidthIn"><i>widthIn</i></a>, <a href="HTuple.html">HTuple</a> <a href="#HeightIn"><i>heightIn</i></a>, <a href="HTuple.html">HTuple</a> <a href="#WidthMapped"><i>widthMapped</i></a>, <a href="HTuple.html">HTuple</a> <a href="#HeightMapped"><i>heightMapped</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Scale"><i>scale</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MapType"><i>mapType</i></a>)</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>.<b>GenImageToWorldPlaneMap</b>(<a href="HCamPar.html">HCamPar</a> <a href="#CameraParam"><i>cameraParam</i></a>, <a href="HPose.html">HPose</a> <a href="#WorldPose"><i>worldPose</i></a>, int <a href="#WidthIn"><i>widthIn</i></a>, int <a href="#HeightIn"><i>heightIn</i></a>, int <a href="#WidthMapped"><i>widthMapped</i></a>, int <a href="#HeightMapped"><i>heightMapped</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Scale"><i>scale</i></a>, string <a href="#MapType"><i>mapType</i></a>)</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>.<b>GenImageToWorldPlaneMap</b>(<a href="HCamPar.html">HCamPar</a> <a href="#CameraParam"><i>cameraParam</i></a>, <a href="HPose.html">HPose</a> <a href="#WorldPose"><i>worldPose</i></a>, int <a href="#WidthIn"><i>widthIn</i></a>, int <a href="#HeightIn"><i>heightIn</i></a>, int <a href="#WidthMapped"><i>widthMapped</i></a>, int <a href="#HeightMapped"><i>heightMapped</i></a>, string <a href="#Scale"><i>scale</i></a>, string <a href="#MapType"><i>mapType</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HCamPar.html">HCamPar</a>.<b>GenImageToWorldPlaneMap</b>(<a href="HPose.html">HPose</a> <a href="#WorldPose"><i>worldPose</i></a>, int <a href="#WidthIn"><i>widthIn</i></a>, int <a href="#HeightIn"><i>heightIn</i></a>, int <a href="#WidthMapped"><i>widthMapped</i></a>, int <a href="#HeightMapped"><i>heightMapped</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Scale"><i>scale</i></a>, string <a href="#MapType"><i>mapType</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HCamPar.html">HCamPar</a>.<b>GenImageToWorldPlaneMap</b>(<a href="HPose.html">HPose</a> <a href="#WorldPose"><i>worldPose</i></a>, int <a href="#WidthIn"><i>widthIn</i></a>, int <a href="#HeightIn"><i>heightIn</i></a>, int <a href="#WidthMapped"><i>widthMapped</i></a>, int <a href="#HeightMapped"><i>heightMapped</i></a>, string <a href="#Scale"><i>scale</i></a>, string <a href="#MapType"><i>mapType</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HPose.html">HPose</a>.<b>GenImageToWorldPlaneMap</b>(<a href="HCamPar.html">HCamPar</a> <a href="#CameraParam"><i>cameraParam</i></a>, int <a href="#WidthIn"><i>widthIn</i></a>, int <a href="#HeightIn"><i>heightIn</i></a>, int <a href="#WidthMapped"><i>widthMapped</i></a>, int <a href="#HeightMapped"><i>heightMapped</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Scale"><i>scale</i></a>, string <a href="#MapType"><i>mapType</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HPose.html">HPose</a>.<b>GenImageToWorldPlaneMap</b>(<a href="HCamPar.html">HCamPar</a> <a href="#CameraParam"><i>cameraParam</i></a>, int <a href="#WidthIn"><i>widthIn</i></a>, int <a href="#HeightIn"><i>heightIn</i></a>, int <a href="#WidthMapped"><i>widthMapped</i></a>, int <a href="#HeightMapped"><i>heightMapped</i></a>, string <a href="#Scale"><i>scale</i></a>, string <a href="#MapType"><i>mapType</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>gen_image_to_world_plane_map</b>(<a href="#CameraParam"><i>camera_param</i></a>: Sequence[Union[int, float, str]], <a href="#WorldPose"><i>world_pose</i></a>: Sequence[Union[int, float]], <a href="#WidthIn"><i>width_in</i></a>: int, <a href="#HeightIn"><i>height_in</i></a>: int, <a href="#WidthMapped"><i>width_mapped</i></a>: int, <a href="#HeightMapped"><i>height_mapped</i></a>: int, <a href="#Scale"><i>scale</i></a>: Union[int, float, str], <a href="#MapType"><i>map_type</i></a>: str) -&gt; HObject</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">gen_image_to_world_plane_map</span><span data-if="c" style="display:none">gen_image_to_world_plane_map</span><span data-if="cpp" style="display:none">GenImageToWorldPlaneMap</span><span data-if="com" style="display:none">GenImageToWorldPlaneMap</span><span data-if="dotnet" style="display:none">GenImageToWorldPlaneMap</span><span data-if="python" style="display:none">gen_image_to_world_plane_map</span></code> generates a projection map <a href="#Map"><i><code><span data-if="hdevelop" style="display:inline">Map</span><span data-if="c" style="display:none">Map</span><span data-if="cpp" style="display:none">Map</span><span data-if="com" style="display:none">Map</span><span data-if="dotnet" style="display:none">map</span><span data-if="python" style="display:none">map</span></code></i></a>,
which describes the mapping between the image plane and the plane z=0
(plane of measurements) in a world coordinate system. This map can be used
to rectify an image with 该算子 <a href="map_image.html"><code><span data-if="hdevelop" style="display:inline">map_image</span><span data-if="c" style="display:none">map_image</span><span data-if="cpp" style="display:none">MapImage</span><span data-if="com" style="display:none">MapImage</span><span data-if="dotnet" style="display:none">MapImage</span><span data-if="python" style="display:none">map_image</span></code></a>.  The rectified
image shows neither radial nor perspective distortions; it corresponds to
an image acquired by a distortion-free camera that looks perpendicularly
onto the plane of measurements. The world coordinate system (<i>wcs</i>)
is chosen by passing its 3D pose relative to the camera coordinate system
(<i>ccs</i>) in
<a href="#WorldPose"><i><code><span data-if="hdevelop" style="display:inline">WorldPose</span><span data-if="c" style="display:none">WorldPose</span><span data-if="cpp" style="display:none">WorldPose</span><span data-if="com" style="display:none">WorldPose</span><span data-if="dotnet" style="display:none">worldPose</span><span data-if="python" style="display:none">world_pose</span></code></i></a>. Thus the pose is expected in the form
<span title="1" style="vertical-align:-0.217917em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3.42407em" height="1.01195em" viewBox="0 0 54.785156 16.191269">
<!-- Original BoundingBox: -27.392578 -8.095642 27.392578 8.095627 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_99">
      <path style="fill-rule: evenodd;" d="M438.000000 -383.000000C402.000000 -377.000000,387.000000 -349.000000,387.000000 -327.000000C387.000000 -300.000000,408.000000 -290.000000,426.000000 -290.000000C448.000000 -290.000000,483.000000 -306.000000,483.000000 -354.000000C483.000000 -422.000000,405.000000 -441.000000,351.000000 -441.000000C201.000000 -441.000000,62.000000 -303.000000,62.000000 -164.000000C62.000000 -78.000000,122.000000 10.000000,247.000000 10.000000C416.000000 10.000000,495.000000 -89.000000,495.000000 -103.000000C495.000000 -109.000000,486.000000 -120.000000,478.000000 -120.000000C472.000000 -120.000000,470.000000 -118.000000,462.000000 -110.000000C384.000000 -18.000000,267.000000 -18.000000,249.000000 -18.000000C177.000000 -18.000000,145.000000 -67.000000,145.000000 -129.000000C145.000000 -158.000000,159.000000 -267.000000,211.000000 -336.000000C249.000000 -385.000000,301.000000 -413.000000,351.000000 -413.000000C365.000000 -413.000000,413.000000 -411.000000,438.000000 -383.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_115">
      <path style="fill-rule: evenodd;" d="M431.000000 -376.000000C405.000000 -370.000000,389.000000 -349.000000,389.000000 -329.000000C389.000000 -306.000000,409.000000 -297.000000,422.000000 -297.000000C432.000000 -297.000000,470.000000 -303.000000,470.000000 -354.000000C470.000000 -419.000000,398.000000 -441.000000,337.000000 -441.000000C181.000000 -441.000000,153.000000 -326.000000,153.000000 -295.000000C153.000000 -258.000000,174.000000 -234.000000,188.000000 -222.000000C214.000000 -202.000000,232.000000 -198.000000,301.000000 -186.000000C322.000000 -182.000000,386.000000 -170.000000,386.000000 -120.000000C386.000000 -103.000000,375.000000 -65.000000,333.000000 -40.000000C294.000000 -18.000000,245.000000 -18.000000,233.000000 -18.000000C193.000000 -18.000000,136.000000 -27.000000,113.000000 -60.000000C146.000000 -64.000000,168.000000 -89.000000,168.000000 -117.000000C168.000000 -142.000000,150.000000 -154.000000,129.000000 -154.000000C100.000000 -154.000000,71.000000 -131.000000,71.000000 -87.000000C71.000000 -27.000000,135.000000 10.000000,232.000000 10.000000C416.000000 10.000000,450.000000 -116.000000,450.000000 -155.000000C450.000000 -247.000000,349.000000 -265.000000,312.000000 -272.000000C303.000000 -274.000000,278.000000 -278.000000,272.000000 -280.000000C235.000000 -287.000000,217.000000 -308.000000,217.000000 -330.000000C217.000000 -353.000000,235.000000 -380.000000,257.000000 -394.000000C284.000000 -411.000000,319.000000 -413.000000,336.000000 -413.000000C357.000000 -413.000000,409.000000 -410.000000,431.000000 -376.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_119">
      <path style="fill-rule: evenodd;" d="M526.000000 -319.000000C533.000000 -346.000000,545.000000 -394.000000,545.000000 -399.000000C545.000000 -419.000000,529.000000 -431.000000,512.000000 -431.000000C493.000000 -431.000000,475.000000 -419.000000,469.000000 -402.000000C466.000000 -394.000000,456.000000 -352.000000,449.000000 -327.000000C435.000000 -270.000000,435.000000 -268.000000,420.000000 -212.000000C407.000000 -157.000000,405.000000 -149.000000,404.000000 -120.000000C408.000000 -100.000000,400.000000 -81.000000,376.000000 -51.000000C363.000000 -35.000000,343.000000 -18.000000,309.000000 -18.000000C270.000000 -18.000000,219.000000 -32.000000,219.000000 -110.000000C219.000000 -161.000000,247.000000 -235.000000,267.000000 -286.000000C284.000000 -330.000000,288.000000 -339.000000,288.000000 -356.000000C288.000000 -404.000000,247.000000 -441.000000,193.000000 -441.000000C92.000000 -441.000000,47.000000 -305.000000,47.000000 -288.000000C47.000000 -275.000000,61.000000 -275.000000,64.000000 -275.000000C78.000000 -275.000000,79.000000 -280.000000,82.000000 -291.000000C107.000000 -374.000000,150.000000 -413.000000,190.000000 -413.000000C207.000000 -413.000000,215.000000 -402.000000,215.000000 -378.000000C215.000000 -355.000000,206.000000 -333.000000,201.000000 -320.000000C144.000000 -174.000000,144.000000 -154.000000,144.000000 -123.000000C144.000000 -5.000000,251.000000 10.000000,305.000000 10.000000C324.000000 10.000000,373.000000 10.000000,418.000000 -57.000000C441.000000 -12.000000,496.000000 10.000000,557.000000 10.000000C646.000000 10.000000,690.000000 -67.000000,710.000000 -108.000000C753.000000 -192.000000,780.000000 -317.000000,780.000000 -363.000000C780.000000 -438.000000,737.000000 -442.000000,730.000000 -442.000000C704.000000 -442.000000,676.000000 -415.000000,676.000000 -389.000000C676.000000 -372.000000,686.000000 -364.000000,693.000000 -358.000000C717.000000 -338.000000,730.000000 -310.000000,730.000000 -278.000000C730.000000 -265.000000,688.000000 -18.000000,561.000000 -18.000000C480.000000 -18.000000,480.000000 -90.000000,480.000000 -107.000000C480.000000 -134.000000,484.000000 -150.000000,498.000000 -207.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_80">
      <path style="fill-rule: evenodd;" d="M289.000000 -302.000000L466.000000 -302.000000C605.000000 -302.000000,721.000000 -374.000000,721.000000 -491.000000C721.000000 -601.000000,622.000000 -686.000000,456.000000 -686.000000L39.000000 -686.000000L39.000000 -639.000000L147.000000 -639.000000L147.000000 -47.000000L39.000000 -47.000000L39.000000 -0.000000L218.000000 -0.000000L77.000000 -3.000000L175.000000 -3.000000L218.000000 -3.000000L261.000000 -3.000000L359.000000 -3.000000L397.000000 -0.000000L397.000000 -47.000000L289.000000 -47.000000M417.000000 -343.000000L283.000000 -343.000000L283.000000 -639.000000L418.000000 -639.000000C568.000000 -639.000000,568.000000 -563.000000,568.000000 -491.000000C568.000000 -420.000000,568.000000 -343.000000,417.000000 -343.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.623413 5.708572)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_99"></use>
    <use xlink:href="#GLYPHcmmi7_99" x="3.573800"></use>
    <use xlink:href="#GLYPHcmmi7_115" x="7.147601"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,18.830048 12.704590)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_80"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,31.360809 15.095642)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_119"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,40.882629 15.095642)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_99"></use>
    <use xlink:href="#GLYPHcmmi7_115" x="3.573800"></use>
  </g>
</svg></span>
(see <a href="toc_transformations_poses.html">Transformations / Poses</a>
and <code>“Solution Guide III-C - 3D Vision”</code>).
In <a href="#CameraParam"><i><code><span data-if="hdevelop" style="display:inline">CameraParam</span><span data-if="c" style="display:none">CameraParam</span><span data-if="cpp" style="display:none">CameraParam</span><span data-if="com" style="display:none">CameraParam</span><span data-if="dotnet" style="display:none">cameraParam</span><span data-if="python" style="display:none">camera_param</span></code></i></a> you must pass the internal camera
parameters (see <a href="toc_calibration.html">Calibration</a> for the sequence of the
parameters and the underlying camera model).
</p>
<p>In many cases <a href="#CameraParam"><i><code><span data-if="hdevelop" style="display:inline">CameraParam</span><span data-if="c" style="display:none">CameraParam</span><span data-if="cpp" style="display:none">CameraParam</span><span data-if="com" style="display:none">CameraParam</span><span data-if="dotnet" style="display:none">cameraParam</span><span data-if="python" style="display:none">camera_param</span></code></i></a> and <a href="#WorldPose"><i><code><span data-if="hdevelop" style="display:inline">WorldPose</span><span data-if="c" style="display:none">WorldPose</span><span data-if="cpp" style="display:none">WorldPose</span><span data-if="com" style="display:none">WorldPose</span><span data-if="dotnet" style="display:none">worldPose</span><span data-if="python" style="display:none">world_pose</span></code></i></a> are the result of
calibrating the camera with 该算子 <a href="calibrate_cameras.html"><code><span data-if="hdevelop" style="display:inline">calibrate_cameras</span><span data-if="c" style="display:none">calibrate_cameras</span><span data-if="cpp" style="display:none">CalibrateCameras</span><span data-if="com" style="display:none">CalibrateCameras</span><span data-if="dotnet" style="display:none">CalibrateCameras</span><span data-if="python" style="display:none">calibrate_cameras</span></code></a>. See
below for an example.
</p>
<p>The size of the images to be mapped can be specified by the parameters
<a href="#WidthIn"><i><code><span data-if="hdevelop" style="display:inline">WidthIn</span><span data-if="c" style="display:none">WidthIn</span><span data-if="cpp" style="display:none">WidthIn</span><span data-if="com" style="display:none">WidthIn</span><span data-if="dotnet" style="display:none">widthIn</span><span data-if="python" style="display:none">width_in</span></code></i></a> and <a href="#HeightIn"><i><code><span data-if="hdevelop" style="display:inline">HeightIn</span><span data-if="c" style="display:none">HeightIn</span><span data-if="cpp" style="display:none">HeightIn</span><span data-if="com" style="display:none">HeightIn</span><span data-if="dotnet" style="display:none">heightIn</span><span data-if="python" style="display:none">height_in</span></code></i></a>.  The pixel position of the upper left
corner of the output image is determined by the origin of the world
coordinate system.  The size of the output image can be chosen by the
parameters <a href="#WidthMapped"><i><code><span data-if="hdevelop" style="display:inline">WidthMapped</span><span data-if="c" style="display:none">WidthMapped</span><span data-if="cpp" style="display:none">WidthMapped</span><span data-if="com" style="display:none">WidthMapped</span><span data-if="dotnet" style="display:none">widthMapped</span><span data-if="python" style="display:none">width_mapped</span></code></i></a>, <a href="#HeightMapped"><i><code><span data-if="hdevelop" style="display:inline">HeightMapped</span><span data-if="c" style="display:none">HeightMapped</span><span data-if="cpp" style="display:none">HeightMapped</span><span data-if="com" style="display:none">HeightMapped</span><span data-if="dotnet" style="display:none">heightMapped</span><span data-if="python" style="display:none">height_mapped</span></code></i></a>, and
<a href="#Scale"><i><code><span data-if="hdevelop" style="display:inline">Scale</span><span data-if="c" style="display:none">Scale</span><span data-if="cpp" style="display:none">Scale</span><span data-if="com" style="display:none">Scale</span><span data-if="dotnet" style="display:none">scale</span><span data-if="python" style="display:none">scale</span></code></i></a>. <a href="#WidthMapped"><i><code><span data-if="hdevelop" style="display:inline">WidthMapped</span><span data-if="c" style="display:none">WidthMapped</span><span data-if="cpp" style="display:none">WidthMapped</span><span data-if="com" style="display:none">WidthMapped</span><span data-if="dotnet" style="display:none">widthMapped</span><span data-if="python" style="display:none">width_mapped</span></code></i></a> and <a href="#HeightMapped"><i><code><span data-if="hdevelop" style="display:inline">HeightMapped</span><span data-if="c" style="display:none">HeightMapped</span><span data-if="cpp" style="display:none">HeightMapped</span><span data-if="com" style="display:none">HeightMapped</span><span data-if="dotnet" style="display:none">heightMapped</span><span data-if="python" style="display:none">height_mapped</span></code></i></a> must be given
in pixels.
</p>
<p>The parameter <a href="#Scale"><i><code><span data-if="hdevelop" style="display:inline">Scale</span><span data-if="c" style="display:none">Scale</span><span data-if="cpp" style="display:none">Scale</span><span data-if="com" style="display:none">Scale</span><span data-if="dotnet" style="display:none">scale</span><span data-if="python" style="display:none">scale</span></code></i></a> can be used to specify the size of a pixel in the
transformed image. There are two ways to use this parameter:
</p>
<dl class="generic">

<dt><b>Scale pixels to metric units:</b></dt>
<dd>
<p>

Scale the image such that one pixel in the transformed image corresponds
to a metric unit, e.g., setting <i><span data-if="hdevelop" style="display:inline">'mm'</span><span data-if="c" style="display:none">"mm"</span><span data-if="cpp" style="display:none">"mm"</span><span data-if="com" style="display:none">"mm"</span><span data-if="dotnet" style="display:none">"mm"</span><span data-if="python" style="display:none">"mm"</span></i> determines that a pixel in the
transformed image corresponds to the area 1mm x 1mm in the
plane of measurements. For this, the original unit needs to be meters.
This is the case if you use a standard calibration plate.</p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'m'</span><span data-if="c" style="display:none">"m"</span><span data-if="cpp" style="display:none">"m"</span><span data-if="com" style="display:none">"m"</span><span data-if="dotnet" style="display:none">"m"</span><span data-if="python" style="display:none">"m"</span></i>, <i><span data-if="hdevelop" style="display:inline">'cm'</span><span data-if="c" style="display:none">"cm"</span><span data-if="cpp" style="display:none">"cm"</span><span data-if="com" style="display:none">"cm"</span><span data-if="dotnet" style="display:none">"cm"</span><span data-if="python" style="display:none">"cm"</span></i>, <i><span data-if="hdevelop" style="display:inline">'mm'</span><span data-if="c" style="display:none">"mm"</span><span data-if="cpp" style="display:none">"mm"</span><span data-if="com" style="display:none">"mm"</span><span data-if="dotnet" style="display:none">"mm"</span><span data-if="python" style="display:none">"mm"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'microns'</span><span data-if="c" style="display:none">"microns"</span><span data-if="cpp" style="display:none">"microns"</span><span data-if="com" style="display:none">"microns"</span><span data-if="dotnet" style="display:none">"microns"</span><span data-if="python" style="display:none">"microns"</span></i>, <i><span data-if="hdevelop" style="display:inline">'um'</span><span data-if="c" style="display:none">"um"</span><span data-if="cpp" style="display:none">"um"</span><span data-if="com" style="display:none">"um"</span><span data-if="dotnet" style="display:none">"um"</span><span data-if="python" style="display:none">"um"</span></i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'m'</span><span data-if="c" style="display:none">"m"</span><span data-if="cpp" style="display:none">"m"</span><span data-if="com" style="display:none">"m"</span><span data-if="dotnet" style="display:none">"m"</span><span data-if="python" style="display:none">"m"</span></i>.
</p>
</dd>

<dt><b>Control scaling manually:</b></dt>
<dd>
<p>

Scale the image by giving a number that determines the ratio of
<i>original unit length</i> / <i>desired number of pixels</i>.
E.g., if your original unit is meters and you want
every pixel of your transformed image to represent 3mm x 3mm
of the measuring plane, your scale is calculated
<span title="2" style="vertical-align:-0.37221em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="11.3063em" height="1.12127em" viewBox="0 0 180.901321 17.940399">
<!-- Original BoundingBox: -90.450668 -8.970200 90.450653 8.970200 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_83">
      <path style="fill-rule: evenodd;" d="M445.000000 -517.000000C403.000000 -558.000000,358.000000 -576.000000,299.000000 -576.000000C194.000000 -576.000000,115.000000 -509.000000,115.000000 -421.000000C115.000000 -379.000000,134.000000 -340.000000,167.000000 -317.000000C197.000000 -295.000000,233.000000 -283.000000,303.000000 -271.000000C374.000000 -259.000000,395.000000 -253.000000,419.000000 -237.000000C447.000000 -220.000000,464.000000 -188.000000,464.000000 -153.000000C464.000000 -79.000000,394.000000 -25.000000,301.000000 -25.000000C210.000000 -25.000000,136.000000 -76.000000,133.000000 -142.000000C132.000000 -158.000000,126.000000 -166.000000,113.000000 -166.000000C99.000000 -166.000000,92.000000 -157.000000,92.000000 -139.000000L92.000000 -27.000000C92.000000 -9.000000,99.000000 -0.000000,112.000000 -0.000000C126.000000 -0.000000,133.000000 -9.000000,133.000000 -27.000000L133.000000 -56.000000C174.000000 -9.000000,233.000000 16.000000,302.000000 16.000000C422.000000 16.000000,508.000000 -54.000000,508.000000 -151.000000C508.000000 -202.000000,485.000000 -245.000000,446.000000 -269.000000C416.000000 -288.000000,388.000000 -296.000000,311.000000 -309.000000C249.000000 -319.000000,224.000000 -327.000000,198.000000 -344.000000C173.000000 -361.000000,159.000000 -389.000000,159.000000 -420.000000C159.000000 -486.000000,220.000000 -535.000000,302.000000 -535.000000C380.000000 -535.000000,441.000000 -490.000000,445.000000 -430.000000C446.000000 -414.000000,453.000000 -406.000000,466.000000 -406.000000C479.000000 -406.000000,486.000000 -415.000000,486.000000 -433.000000L486.000000 -536.000000C486.000000 -554.000000,479.000000 -563.000000,466.000000 -563.000000C452.000000 -563.000000,445.000000 -554.000000,445.000000 -536.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_97">
      <path style="fill-rule: evenodd;" d="M419.000000 -0.000000L514.000000 -0.000000C532.000000 -0.000000,541.000000 -7.000000,541.000000 -21.000000C541.000000 -34.000000,532.000000 -41.000000,514.000000 -41.000000L460.000000 -41.000000L460.000000 -308.000000C460.000000 -379.000000,392.000000 -431.000000,299.000000 -431.000000C262.000000 -431.000000,197.000000 -418.000000,142.000000 -399.000000C131.000000 -395.000000,125.000000 -388.000000,125.000000 -378.000000C125.000000 -367.000000,134.000000 -358.000000,144.000000 -358.000000C146.000000 -358.000000,150.000000 -359.000000,154.000000 -360.000000C232.000000 -384.000000,260.000000 -390.000000,296.000000 -390.000000C369.000000 -390.000000,419.000000 -357.000000,419.000000 -308.000000L419.000000 -237.000000C360.000000 -253.000000,329.000000 -258.000000,283.000000 -258.000000C158.000000 -258.000000,72.000000 -199.000000,72.000000 -112.000000C72.000000 -36.000000,135.000000 16.000000,228.000000 16.000000C298.000000 16.000000,358.000000 -10.000000,419.000000 -67.000000M419.000000 -112.000000C352.000000 -49.000000,298.000000 -25.000000,227.000000 -25.000000C158.000000 -25.000000,113.000000 -59.000000,113.000000 -111.000000C113.000000 -174.000000,185.000000 -217.000000,291.000000 -217.000000C335.000000 -217.000000,383.000000 -211.000000,419.000000 -202.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_99">
      <path style="fill-rule: evenodd;" d="M470.000000 -376.000000C429.000000 -412.000000,375.000000 -431.000000,314.000000 -431.000000C180.000000 -431.000000,84.000000 -336.000000,84.000000 -204.000000C84.000000 -76.000000,178.000000 16.000000,309.000000 16.000000C375.000000 16.000000,441.000000 -4.000000,492.000000 -39.000000C520.000000 -58.000000,535.000000 -76.000000,535.000000 -88.000000C535.000000 -98.000000,526.000000 -107.000000,516.000000 -107.000000C509.000000 -107.000000,506.000000 -105.000000,498.000000 -97.000000C446.000000 -49.000000,384.000000 -25.000000,311.000000 -25.000000C202.000000 -25.000000,125.000000 -100.000000,125.000000 -205.000000C125.000000 -315.000000,201.000000 -390.000000,311.000000 -390.000000C395.000000 -390.000000,466.000000 -348.000000,470.000000 -295.000000C472.000000 -278.000000,478.000000 -271.000000,491.000000 -271.000000C504.000000 -271.000000,511.000000 -280.000000,511.000000 -298.000000L511.000000 -389.000000C511.000000 -408.000000,504.000000 -417.000000,491.000000 -417.000000C477.000000 -417.000000,470.000000 -408.000000,470.000000 -389.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_101">
      <path style="fill-rule: evenodd;" d="M520.000000 -199.000000C520.000000 -245.000000,517.000000 -264.000000,503.000000 -297.000000C467.000000 -380.000000,387.000000 -431.000000,291.000000 -431.000000C163.000000 -431.000000,63.000000 -338.000000,63.000000 -217.000000C63.000000 -87.000000,170.000000 16.000000,305.000000 16.000000C396.000000 16.000000,516.000000 -31.000000,516.000000 -66.000000C516.000000 -77.000000,507.000000 -86.000000,497.000000 -86.000000C492.000000 -86.000000,488.000000 -84.000000,481.000000 -79.000000C441.000000 -47.000000,368.000000 -25.000000,306.000000 -25.000000C198.000000 -25.000000,118.000000 -94.000000,104.000000 -199.000000M104.000000 -240.000000C122.000000 -332.000000,194.000000 -390.000000,291.000000 -390.000000C388.000000 -390.000000,462.000000 -331.000000,478.000000 -240.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHpcrr8r_108">
      <path style="fill-rule: evenodd;" d="M320.000000 -604.000000L162.000000 -604.000000C144.000000 -604.000000,135.000000 -597.000000,135.000000 -584.000000C135.000000 -570.000000,144.000000 -563.000000,162.000000 -563.000000L279.000000 -563.000000L279.000000 -41.000000L119.000000 -41.000000C101.000000 -41.000000,92.000000 -34.000000,92.000000 -21.000000C92.000000 -7.000000,101.000000 -0.000000,119.000000 -0.000000L480.000000 -0.000000C498.000000 -0.000000,508.000000 -7.000000,508.000000 -21.000000C508.000000 -34.000000,499.000000 -41.000000,480.000000 -41.000000L320.000000 -41.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_48">
      <path style="fill-rule: evenodd;" d="M460.000000 -320.000000C460.000000 -400.000000,455.000000 -480.000000,420.000000 -554.000000C374.000000 -650.000000,292.000000 -666.000000,250.000000 -666.000000C190.000000 -666.000000,117.000000 -640.000000,76.000000 -547.000000C44.000000 -478.000000,39.000000 -400.000000,39.000000 -320.000000C39.000000 -245.000000,43.000000 -155.000000,84.000000 -79.000000C127.000000 2.000000,200.000000 22.000000,249.000000 22.000000C303.000000 22.000000,379.000000 1.000000,423.000000 -94.000000C455.000000 -163.000000,460.000000 -241.000000,460.000000 -320.000000M249.000000 -0.000000C210.000000 -0.000000,151.000000 -25.000000,133.000000 -121.000000C122.000000 -181.000000,122.000000 -273.000000,122.000000 -332.000000C122.000000 -396.000000,122.000000 -462.000000,130.000000 -516.000000C149.000000 -635.000000,224.000000 -644.000000,249.000000 -644.000000C282.000000 -644.000000,348.000000 -626.000000,367.000000 -527.000000C377.000000 -471.000000,377.000000 -395.000000,377.000000 -332.000000C377.000000 -257.000000,377.000000 -189.000000,366.000000 -125.000000C351.000000 -30.000000,294.000000 -0.000000,249.000000 -0.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_49">
      <path style="fill-rule: evenodd;" d="M294.000000 -640.000000C294.000000 -664.000000,294.000000 -666.000000,271.000000 -666.000000C209.000000 -602.000000,121.000000 -602.000000,89.000000 -602.000000L89.000000 -571.000000C109.000000 -571.000000,168.000000 -571.000000,220.000000 -597.000000L220.000000 -79.000000C220.000000 -43.000000,217.000000 -31.000000,127.000000 -31.000000L95.000000 -31.000000L95.000000 -0.000000L257.000000 -0.000000L130.000000 -3.000000L217.000000 -3.000000L257.000000 -3.000000L297.000000 -3.000000L384.000000 -3.000000L419.000000 -0.000000L419.000000 -31.000000L387.000000 -31.000000C297.000000 -31.000000,294.000000 -42.000000,294.000000 -79.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_51">
      <path style="fill-rule: evenodd;" d="M290.000000 -352.000000C372.000000 -379.000000,430.000000 -449.000000,430.000000 -528.000000C430.000000 -610.000000,342.000000 -666.000000,246.000000 -666.000000C145.000000 -666.000000,69.000000 -606.000000,69.000000 -530.000000C69.000000 -497.000000,91.000000 -478.000000,120.000000 -478.000000C151.000000 -478.000000,171.000000 -500.000000,171.000000 -529.000000C171.000000 -579.000000,124.000000 -579.000000,109.000000 -579.000000C140.000000 -628.000000,206.000000 -641.000000,242.000000 -641.000000C283.000000 -641.000000,338.000000 -619.000000,338.000000 -529.000000C338.000000 -517.000000,336.000000 -459.000000,310.000000 -415.000000C280.000000 -367.000000,246.000000 -364.000000,221.000000 -363.000000C213.000000 -362.000000,189.000000 -360.000000,182.000000 -360.000000C174.000000 -359.000000,167.000000 -358.000000,167.000000 -348.000000C167.000000 -337.000000,174.000000 -337.000000,191.000000 -337.000000L235.000000 -337.000000C317.000000 -337.000000,354.000000 -269.000000,354.000000 -171.000000C354.000000 -35.000000,285.000000 -6.000000,241.000000 -6.000000C198.000000 -6.000000,123.000000 -23.000000,88.000000 -82.000000C123.000000 -77.000000,154.000000 -99.000000,154.000000 -137.000000C154.000000 -173.000000,127.000000 -193.000000,98.000000 -193.000000C74.000000 -193.000000,42.000000 -179.000000,42.000000 -135.000000C42.000000 -44.000000,135.000000 22.000000,244.000000 22.000000C366.000000 22.000000,457.000000 -69.000000,457.000000 -171.000000C457.000000 -253.000000,394.000000 -331.000000,290.000000 -352.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_61">
      <path style="fill-rule: evenodd;" d="M687.000000 -327.000000C702.000000 -327.000000,721.000000 -327.000000,721.000000 -347.000000C721.000000 -367.000000,702.000000 -367.000000,688.000000 -367.000000L89.000000 -367.000000C75.000000 -367.000000,56.000000 -367.000000,56.000000 -347.000000C56.000000 -327.000000,75.000000 -327.000000,90.000000 -327.000000M688.000000 -133.000000C702.000000 -133.000000,721.000000 -133.000000,721.000000 -153.000000C721.000000 -173.000000,702.000000 -173.000000,687.000000 -173.000000L90.000000 -173.000000C75.000000 -173.000000,56.000000 -173.000000,56.000000 -153.000000C56.000000 -133.000000,75.000000 -133.000000,89.000000 -133.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_58">
      <path style="fill-rule: evenodd;" d="M192.000000 -53.000000C192.000000 -82.000000,168.000000 -106.000000,139.000000 -106.000000C110.000000 -106.000000,86.000000 -82.000000,86.000000 -53.000000C86.000000 -24.000000,110.000000 -0.000000,139.000000 -0.000000C168.000000 -0.000000,192.000000 -24.000000,192.000000 -53.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_61">
      <path style="fill-rule: evenodd;" d="M439.000000 -712.000000C444.000000 -725.000000,444.000000 -729.000000,444.000000 -730.000000C444.000000 -741.000000,435.000000 -750.000000,424.000000 -750.000000C417.000000 -750.000000,410.000000 -747.000000,407.000000 -741.000000L60.000000 212.000000C55.000000 225.000000,55.000000 229.000000,55.000000 230.000000C55.000000 241.000000,64.000000 250.000000,75.000000 250.000000C88.000000 250.000000,91.000000 243.000000,97.000000 226.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.565323 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHpcrr8r_83"></use>
    <use xlink:href="#GLYPHpcrr8r_99" x="6.000092"></use>
    <use xlink:href="#GLYPHpcrr8r_97" x="12.000185"></use>
    <use xlink:href="#GLYPHpcrr8r_108" x="18.000277"></use>
    <use xlink:href="#GLYPHpcrr8r_101" x="24.000369"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,52.813858 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,69.639679 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,77.609787 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_58"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,82.037628 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
    <use xlink:href="#GLYPHcmr10_48" x="5.000095"></use>
    <use xlink:href="#GLYPHcmr10_51" x="10.000190"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,105.948120 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,113.918396 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_49"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,126.316223 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,143.142044 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,151.112305 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_58"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,155.540161 11.985046)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
    <use xlink:href="#GLYPHcmr10_48" x="5.000095"></use>
    <use xlink:href="#GLYPHcmr10_51" x="10.000190"></use>
  </g>
</svg></span>.
If you want to perform a task like shape-based matching on your
transformed image, it is useful to scale the image such that its content
appears in a size similar to the original image.</p>
<p>
<i>Restriction:</i> <a href="#Scale"><i><code><span data-if="hdevelop" style="display:inline">Scale</span><span data-if="c" style="display:none">Scale</span><span data-if="cpp" style="display:none">Scale</span><span data-if="com" style="display:none">Scale</span><span data-if="dotnet" style="display:none">scale</span><span data-if="python" style="display:none">scale</span></code></i></a> &gt; 0.
</p>
</dd>
</dl>
<p>The mapping function is stored in the output image <a href="#Map"><i><code><span data-if="hdevelop" style="display:inline">Map</span><span data-if="c" style="display:none">Map</span><span data-if="cpp" style="display:none">Map</span><span data-if="com" style="display:none">Map</span><span data-if="dotnet" style="display:none">map</span><span data-if="python" style="display:none">map</span></code></i></a>.
<a href="#Map"><i><code><span data-if="hdevelop" style="display:inline">Map</span><span data-if="c" style="display:none">Map</span><span data-if="cpp" style="display:none">Map</span><span data-if="com" style="display:none">Map</span><span data-if="dotnet" style="display:none">map</span><span data-if="python" style="display:none">map</span></code></i></a> has the same size as the resulting images after the mapping.
<a href="#MapType"><i><code><span data-if="hdevelop" style="display:inline">MapType</span><span data-if="c" style="display:none">MapType</span><span data-if="cpp" style="display:none">MapType</span><span data-if="com" style="display:none">MapType</span><span data-if="dotnet" style="display:none">mapType</span><span data-if="python" style="display:none">map_type</span></code></i></a> is used to specify the type of the output <a href="#Map"><i><code><span data-if="hdevelop" style="display:inline">Map</span><span data-if="c" style="display:none">Map</span><span data-if="cpp" style="display:none">Map</span><span data-if="com" style="display:none">Map</span><span data-if="dotnet" style="display:none">map</span><span data-if="python" style="display:none">map</span></code></i></a>.
If <i><span data-if="hdevelop" style="display:inline">'nearest_neighbor'</span><span data-if="c" style="display:none">"nearest_neighbor"</span><span data-if="cpp" style="display:none">"nearest_neighbor"</span><span data-if="com" style="display:none">"nearest_neighbor"</span><span data-if="dotnet" style="display:none">"nearest_neighbor"</span><span data-if="python" style="display:none">"nearest_neighbor"</span></i> is chosen, <a href="#Map"><i><code><span data-if="hdevelop" style="display:inline">Map</span><span data-if="c" style="display:none">Map</span><span data-if="cpp" style="display:none">Map</span><span data-if="com" style="display:none">Map</span><span data-if="dotnet" style="display:none">map</span><span data-if="python" style="display:none">map</span></code></i></a> consists of one image
containing one  channel, in which for each pixel of the resulting image the
linearized coordinate of the pixel of the input image is stored that is the
nearest neighbor to the transformed coordinates. If <i><span data-if="hdevelop" style="display:inline">'bilinear'</span><span data-if="c" style="display:none">"bilinear"</span><span data-if="cpp" style="display:none">"bilinear"</span><span data-if="com" style="display:none">"bilinear"</span><span data-if="dotnet" style="display:none">"bilinear"</span><span data-if="python" style="display:none">"bilinear"</span></i>
interpolation  is chosen, <a href="#Map"><i><code><span data-if="hdevelop" style="display:inline">Map</span><span data-if="c" style="display:none">Map</span><span data-if="cpp" style="display:none">Map</span><span data-if="com" style="display:none">Map</span><span data-if="dotnet" style="display:none">map</span><span data-if="python" style="display:none">map</span></code></i></a> consists of one image containing five
channels. In the first channel for each pixel in the resulting image the
linearized coordinates of the pixel in the input image is stored that is in
the upper left position relative to the transformed coordinates.
The four other channels contain the  weights of the four neighboring pixels
of the transformed coordinates which are used for the bilinear
interpolation, in the following order:
</p>
<div style="text-align:center"><table style="margin-left:auto;margin-right:auto" class="grid">
<col span="1">
<col span="1">
<tr>
<td style="text-align:center">
2 </td>
<td style="text-align:center"> 3 </td>
</tr>
<tr>
<td style="text-align:center">
4 </td>
<td style="text-align:center"> 5
</td>
</tr>
</table></div>
<p>The second channel, for example, contains the weights of the pixels that
lie to the upper left relative to the transformed coordinates.
If <i><span data-if="hdevelop" style="display:inline">'coord_map_sub_pix'</span><span data-if="c" style="display:none">"coord_map_sub_pix"</span><span data-if="cpp" style="display:none">"coord_map_sub_pix"</span><span data-if="com" style="display:none">"coord_map_sub_pix"</span><span data-if="dotnet" style="display:none">"coord_map_sub_pix"</span><span data-if="python" style="display:none">"coord_map_sub_pix"</span></i> is chosen, <a href="#Map"><i><code><span data-if="hdevelop" style="display:inline">Map</span><span data-if="c" style="display:none">Map</span><span data-if="cpp" style="display:none">Map</span><span data-if="com" style="display:none">Map</span><span data-if="dotnet" style="display:none">map</span><span data-if="python" style="display:none">map</span></code></i></a> consists of
one vector field image of the semantic type 'vector_field_absolute', in
which for each pixel of the resulting image the subpixel precise
coordinates in the input image are stored.
</p>
<p>If several images have to be mapped using the same camera parameters,
<code><span data-if="hdevelop" style="display:inline">gen_image_to_world_plane_map</span><span data-if="c" style="display:none">gen_image_to_world_plane_map</span><span data-if="cpp" style="display:none">GenImageToWorldPlaneMap</span><span data-if="com" style="display:none">GenImageToWorldPlaneMap</span><span data-if="dotnet" style="display:none">GenImageToWorldPlaneMap</span><span data-if="python" style="display:none">gen_image_to_world_plane_map</span></code> in combination with <a href="map_image.html"><code><span data-if="hdevelop" style="display:inline">map_image</span><span data-if="c" style="display:none">map_image</span><span data-if="cpp" style="display:none">MapImage</span><span data-if="com" style="display:none">MapImage</span><span data-if="dotnet" style="display:none">MapImage</span><span data-if="python" style="display:none">map_image</span></code></a>
is much more efficient than 该算子 <a href="image_to_world_plane.html"><code><span data-if="hdevelop" style="display:inline">image_to_world_plane</span><span data-if="c" style="display:none">image_to_world_plane</span><span data-if="cpp" style="display:none">ImageToWorldPlane</span><span data-if="com" style="display:none">ImageToWorldPlane</span><span data-if="dotnet" style="display:none">ImageToWorldPlane</span><span data-if="python" style="display:none">image_to_world_plane</span></code></a>
because the mapping function needs to be computed only once.
</p>
<p>If you want to re-use the created map in another program, you can save it as
a multi-channel image with 该算子 <a href="write_image.html"><code><span data-if="hdevelop" style="display:inline">write_image</span><span data-if="c" style="display:none">write_image</span><span data-if="cpp" style="display:none">WriteImage</span><span data-if="com" style="display:none">WriteImage</span><span data-if="dotnet" style="display:none">WriteImage</span><span data-if="python" style="display:none">write_image</span></code></a>, using the
format <i><span data-if="hdevelop" style="display:inline">'tiff'</span><span data-if="c" style="display:none">"tiff"</span><span data-if="cpp" style="display:none">"tiff"</span><span data-if="com" style="display:none">"tiff"</span><span data-if="dotnet" style="display:none">"tiff"</span><span data-if="python" style="display:none">"tiff"</span></i>.</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Map" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Map</span><span data-if="c" style="display:none">Map</span><span data-if="cpp" style="display:none">Map</span><span data-if="com" style="display:none">Map</span><span data-if="dotnet" style="display:none">map</span><span data-if="python" style="display:none">map</span></code></b> (output_object)  </span><span>(multichannel-)image <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="c" style="display:none">Hobject *</span> (int4 / int8 / uint2 / vector_field)</span>
</div>
<p class="pardesc">Image containing the mapping data.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="CameraParam" class="parname"><b><code><span data-if="hdevelop" style="display:inline">CameraParam</span><span data-if="c" style="display:none">CameraParam</span><span data-if="cpp" style="display:none">CameraParam</span><span data-if="com" style="display:none">CameraParam</span><span data-if="dotnet" style="display:none">cameraParam</span><span data-if="python" style="display:none">camera_param</span></code></b> (input_control)  </span><span>campar <code>→</code> <span data-if="dotnet" style="display:none"><a href="HCamPar.html">HCamPar</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[Union[int, float, str]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real / </span><span data-if="hdevelop" style="display:inline">integer / </span><span data-if="hdevelop" style="display:inline">string)</span><span data-if="dotnet" style="display:none"> (<i>double</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">string)</span><span data-if="cpp" style="display:none"> (<i>double</i> / </span><span data-if="cpp" style="display:none">Hlong / </span><span data-if="cpp" style="display:none">HString)</span><span data-if="c" style="display:none"> (<i>double</i> / </span><span data-if="c" style="display:none">Hlong / </span><span data-if="c" style="display:none">char*)</span></span>
</div>
<p class="pardesc">Internal camera parameters.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="WorldPose" class="parname"><b><code><span data-if="hdevelop" style="display:inline">WorldPose</span><span data-if="c" style="display:none">WorldPose</span><span data-if="cpp" style="display:none">WorldPose</span><span data-if="com" style="display:none">WorldPose</span><span data-if="dotnet" style="display:none">worldPose</span><span data-if="python" style="display:none">world_pose</span></code></b> (input_control)  </span><span>pose <code>→</code> <span data-if="dotnet" style="display:none"><a href="HPose.html">HPose</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[Union[int, float]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>double</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>double</i> / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>double</i> / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">3D pose of the world coordinate system in camera
coordinates.</p>
<p class="pardesc"><span class="parcat">Number of elements:
      </span>7</p>
</div>
  <div class="par">
<div class="parhead">
<span id="WidthIn" class="parname"><b><code><span data-if="hdevelop" style="display:inline">WidthIn</span><span data-if="c" style="display:none">WidthIn</span><span data-if="cpp" style="display:none">WidthIn</span><span data-if="com" style="display:none">WidthIn</span><span data-if="dotnet" style="display:none">widthIn</span><span data-if="python" style="display:none">width_in</span></code></b> (input_control)  </span><span>extent.x <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Width of the images to be transformed.</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>WidthIn &gt;= 1</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="HeightIn" class="parname"><b><code><span data-if="hdevelop" style="display:inline">HeightIn</span><span data-if="c" style="display:none">HeightIn</span><span data-if="cpp" style="display:none">HeightIn</span><span data-if="com" style="display:none">HeightIn</span><span data-if="dotnet" style="display:none">heightIn</span><span data-if="python" style="display:none">height_in</span></code></b> (input_control)  </span><span>extent.y <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Height of the images to be transformed.</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>HeightIn &gt;= 1</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="WidthMapped" class="parname"><b><code><span data-if="hdevelop" style="display:inline">WidthMapped</span><span data-if="c" style="display:none">WidthMapped</span><span data-if="cpp" style="display:none">WidthMapped</span><span data-if="com" style="display:none">WidthMapped</span><span data-if="dotnet" style="display:none">widthMapped</span><span data-if="python" style="display:none">width_mapped</span></code></b> (input_control)  </span><span>extent.x <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Width of the resulting mapped images in pixels.</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>WidthMapped &gt;= 1</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="HeightMapped" class="parname"><b><code><span data-if="hdevelop" style="display:inline">HeightMapped</span><span data-if="c" style="display:none">HeightMapped</span><span data-if="cpp" style="display:none">HeightMapped</span><span data-if="com" style="display:none">HeightMapped</span><span data-if="dotnet" style="display:none">heightMapped</span><span data-if="python" style="display:none">height_mapped</span></code></b> (input_control)  </span><span>extent.y <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Height of the resulting mapped images in pixels.</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>HeightMapped &gt;= 1</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="Scale" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Scale</span><span data-if="c" style="display:none">Scale</span><span data-if="cpp" style="display:none">Scale</span><span data-if="com" style="display:none">Scale</span><span data-if="dotnet" style="display:none">scale</span><span data-if="python" style="display:none">scale</span></code></b> (input_control)  </span><span>number <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Union[int, float, str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string / </span><span data-if="hdevelop" style="display:inline">integer / </span><span data-if="hdevelop" style="display:inline">real)</span><span data-if="dotnet" style="display:none"> (<i>string</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double)</span><span data-if="cpp" style="display:none"> (<i>HString</i> / </span><span data-if="cpp" style="display:none">Hlong / </span><span data-if="cpp" style="display:none">double)</span><span data-if="c" style="display:none"> (<i>char*</i> / </span><span data-if="c" style="display:none">Hlong / </span><span data-if="c" style="display:none">double)</span></span>
</div>
<p class="pardesc">Scale or unit.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'m'</span>
    <span data-if="c" style="display:none">"m"</span>
    <span data-if="cpp" style="display:none">"m"</span>
    <span data-if="com" style="display:none">"m"</span>
    <span data-if="dotnet" style="display:none">"m"</span>
    <span data-if="python" style="display:none">"m"</span>
</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span><span data-if="hdevelop" style="display:inline">'m'</span><span data-if="c" style="display:none">"m"</span><span data-if="cpp" style="display:none">"m"</span><span data-if="com" style="display:none">"m"</span><span data-if="dotnet" style="display:none">"m"</span><span data-if="python" style="display:none">"m"</span>, <span data-if="hdevelop" style="display:inline">'cm'</span><span data-if="c" style="display:none">"cm"</span><span data-if="cpp" style="display:none">"cm"</span><span data-if="com" style="display:none">"cm"</span><span data-if="dotnet" style="display:none">"cm"</span><span data-if="python" style="display:none">"cm"</span>, <span data-if="hdevelop" style="display:inline">'mm'</span><span data-if="c" style="display:none">"mm"</span><span data-if="cpp" style="display:none">"mm"</span><span data-if="com" style="display:none">"mm"</span><span data-if="dotnet" style="display:none">"mm"</span><span data-if="python" style="display:none">"mm"</span>, <span data-if="hdevelop" style="display:inline">'microns'</span><span data-if="c" style="display:none">"microns"</span><span data-if="cpp" style="display:none">"microns"</span><span data-if="com" style="display:none">"microns"</span><span data-if="dotnet" style="display:none">"microns"</span><span data-if="python" style="display:none">"microns"</span>, <span data-if="hdevelop" style="display:inline">'um'</span><span data-if="c" style="display:none">"um"</span><span data-if="cpp" style="display:none">"um"</span><span data-if="com" style="display:none">"um"</span><span data-if="dotnet" style="display:none">"um"</span><span data-if="python" style="display:none">"um"</span>, 1.0, 0.01, 0.001, 1.0e-6, 0.0254, 0.3048, 0.9144</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>Scale &gt; 0</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="MapType" class="parname"><b><code><span data-if="hdevelop" style="display:inline">MapType</span><span data-if="c" style="display:none">MapType</span><span data-if="cpp" style="display:none">MapType</span><span data-if="com" style="display:none">MapType</span><span data-if="dotnet" style="display:none">mapType</span><span data-if="python" style="display:none">map_type</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Type of the mapping.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'bilinear'</span>
    <span data-if="c" style="display:none">"bilinear"</span>
    <span data-if="cpp" style="display:none">"bilinear"</span>
    <span data-if="com" style="display:none">"bilinear"</span>
    <span data-if="dotnet" style="display:none">"bilinear"</span>
    <span data-if="python" style="display:none">"bilinear"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'bilinear'</span><span data-if="c" style="display:none">"bilinear"</span><span data-if="cpp" style="display:none">"bilinear"</span><span data-if="com" style="display:none">"bilinear"</span><span data-if="dotnet" style="display:none">"bilinear"</span><span data-if="python" style="display:none">"bilinear"</span>, <span data-if="hdevelop" style="display:inline">'coord_map_sub_pix'</span><span data-if="c" style="display:none">"coord_map_sub_pix"</span><span data-if="cpp" style="display:none">"coord_map_sub_pix"</span><span data-if="com" style="display:none">"coord_map_sub_pix"</span><span data-if="dotnet" style="display:none">"coord_map_sub_pix"</span><span data-if="python" style="display:none">"coord_map_sub_pix"</span>, <span data-if="hdevelop" style="display:inline">'nearest_neighbor'</span><span data-if="c" style="display:none">"nearest_neighbor"</span><span data-if="cpp" style="display:none">"nearest_neighbor"</span><span data-if="com" style="display:none">"nearest_neighbor"</span><span data-if="dotnet" style="display:none">"nearest_neighbor"</span><span data-if="python" style="display:none">"nearest_neighbor"</span></p>
</div>
<h2 id="sec_example_all">例程 (HDevelop)</h2>
<pre class="example">
* Calibrate camera.
calibrate_cameras (CalibDataID, Error)
* Obtain camera parameters.
get_calib_data (CalibDataID, 'camera', 0, 'params', CamParam)
* Example values, if no calibration data is available:
CamParam := ['area_scan_division', 0.0087, -1859, 8.65e-006, 8.6e-006, \
             362.5, 291.6, 768, 576]
* Get reference pose (pose 4 of calibration object 0).
get_calib_data (CalibDataID, 'calib_obj_pose',\
                [0,4], 'pose', Pose)
* Example values, if no calibration data is available:
Pose := [-0.11, -0.21, 2.51, 352.73, 346.73, 336.48, 0]
* Compensate thickness of plate.
set_origin_pose (Pose, -1.125, -1.0, 0, PoseNewOrigin)
* Transform the image into the world plane.
read_image (Image, 'calib/calib-3d-coord-04')
gen_image_to_world_plane_map (MapSingle, CamParam, PoseNewOrigin,\
                  CamParam[6], CamParam[7], 900, 800, 0.0025, 'bilinear')
map_image (Image, MapSingle, ImageMapped)
</pre>
<h2 id="sec_result">结果</h2>
<p><code><span data-if="hdevelop" style="display:inline">gen_image_to_world_plane_map</span><span data-if="c" style="display:none">gen_image_to_world_plane_map</span><span data-if="cpp" style="display:none">GenImageToWorldPlaneMap</span><span data-if="com" style="display:none">GenImageToWorldPlaneMap</span><span data-if="dotnet" style="display:none">GenImageToWorldPlaneMap</span><span data-if="python" style="display:none">gen_image_to_world_plane_map</span></code> returns <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
     if all parameter values
are correct. 如有必要，将引发异常。</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="create_pose.html"><span data-if="hdevelop" style="display:inline">create_pose</span><span data-if="c" style="display:none">create_pose</span><span data-if="cpp" style="display:none">CreatePose</span><span data-if="com" style="display:none">CreatePose</span><span data-if="dotnet" style="display:none">CreatePose</span><span data-if="python" style="display:none">create_pose</span></a></code>, 
<code><a href="hom_mat3d_to_pose.html"><span data-if="hdevelop" style="display:inline">hom_mat3d_to_pose</span><span data-if="c" style="display:none">hom_mat3d_to_pose</span><span data-if="cpp" style="display:none">HomMat3dToPose</span><span data-if="com" style="display:none">HomMat3dToPose</span><span data-if="dotnet" style="display:none">HomMat3dToPose</span><span data-if="python" style="display:none">hom_mat3d_to_pose</span></a></code>, 
<code><a href="camera_calibration.html"><span data-if="hdevelop" style="display:inline">camera_calibration</span><span data-if="c" style="display:none">camera_calibration</span><span data-if="cpp" style="display:none">CameraCalibration</span><span data-if="com" style="display:none">CameraCalibration</span><span data-if="dotnet" style="display:none">CameraCalibration</span><span data-if="python" style="display:none">camera_calibration</span></a></code>, 
<code><a href="hand_eye_calibration.html"><span data-if="hdevelop" style="display:inline">hand_eye_calibration</span><span data-if="c" style="display:none">hand_eye_calibration</span><span data-if="cpp" style="display:none">HandEyeCalibration</span><span data-if="com" style="display:none">HandEyeCalibration</span><span data-if="dotnet" style="display:none">HandEyeCalibration</span><span data-if="python" style="display:none">hand_eye_calibration</span></a></code>, 
<code><a href="set_origin_pose.html"><span data-if="hdevelop" style="display:inline">set_origin_pose</span><span data-if="c" style="display:none">set_origin_pose</span><span data-if="cpp" style="display:none">SetOriginPose</span><span data-if="com" style="display:none">SetOriginPose</span><span data-if="dotnet" style="display:none">SetOriginPose</span><span data-if="python" style="display:none">set_origin_pose</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="map_image.html"><span data-if="hdevelop" style="display:inline">map_image</span><span data-if="c" style="display:none">map_image</span><span data-if="cpp" style="display:none">MapImage</span><span data-if="com" style="display:none">MapImage</span><span data-if="dotnet" style="display:none">MapImage</span><span data-if="python" style="display:none">map_image</span></a></code>
</p>
<h2 id="sec_alternatives">可替代算子</h2>
<p>
<code><a href="image_to_world_plane.html"><span data-if="hdevelop" style="display:inline">image_to_world_plane</span><span data-if="c" style="display:none">image_to_world_plane</span><span data-if="cpp" style="display:none">ImageToWorldPlane</span><span data-if="com" style="display:none">ImageToWorldPlane</span><span data-if="dotnet" style="display:none">ImageToWorldPlane</span><span data-if="python" style="display:none">image_to_world_plane</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="map_image.html"><span data-if="hdevelop" style="display:inline">map_image</span><span data-if="c" style="display:none">map_image</span><span data-if="cpp" style="display:none">MapImage</span><span data-if="com" style="display:none">MapImage</span><span data-if="dotnet" style="display:none">MapImage</span><span data-if="python" style="display:none">map_image</span></a></code>, 
<code><a href="contour_to_world_plane_xld.html"><span data-if="hdevelop" style="display:inline">contour_to_world_plane_xld</span><span data-if="c" style="display:none">contour_to_world_plane_xld</span><span data-if="cpp" style="display:none">ContourToWorldPlaneXld</span><span data-if="com" style="display:none">ContourToWorldPlaneXld</span><span data-if="dotnet" style="display:none">ContourToWorldPlaneXld</span><span data-if="python" style="display:none">contour_to_world_plane_xld</span></a></code>, 
<code><a href="image_points_to_world_plane.html"><span data-if="hdevelop" style="display:inline">image_points_to_world_plane</span><span data-if="c" style="display:none">image_points_to_world_plane</span><span data-if="cpp" style="display:none">ImagePointsToWorldPlane</span><span data-if="com" style="display:none">ImagePointsToWorldPlane</span><span data-if="dotnet" style="display:none">ImagePointsToWorldPlane</span><span data-if="python" style="display:none">image_points_to_world_plane</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Calibration</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
